package edu.uwm.cs552;

import java.awt.Graphics;
import java.awt.Point;
import java.awt.Polygon;

import edu.uwm.cs552.util.Pair;

public interface HasTopography<T extends Topography<T>> {
	T getTopography();

	void setTopography(T topography);
	
	void draw(Graphics g, double scale, boolean showHidden);
	
	public Point toPoint(double scale);
	
	public Polygon toPolygon(double scale);
	
	public Pair<Point, Point> toLineSegment(double scale);
	
	public HasTopography<T> move(HexDirection d);
}
